// package hn.cch.mybatis.plus;
//
// import com.baomidou.mybatisplus.core.toolkit.StringPool;
// import com.baomidou.mybatisplus.generator.AutoGenerator;
// import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
// import com.baomidou.mybatisplus.generator.config.GlobalConfig;
// import com.baomidou.mybatisplus.generator.config.InjectionConfig;
// import com.baomidou.mybatisplus.generator.config.PackageConfig;
// import com.baomidou.mybatisplus.generator.config.StrategyConfig;
// import com.baomidou.mybatisplus.generator.config.TemplateConfig;
// import com.baomidou.mybatisplus.generator.config.po.TableInfo;
// import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
//
// import java.util.ArrayList;
// import java.util.List;
//
// public class MybatisPlusAutoGenerator {
//
//     public static void main(String[] args) {
//         //自动代码生成器
//         AutoGenerator autoGenerator = new AutoGenerator();
//
//         //全局配置
//         GlobalConfig globalConfig = new GlobalConfig();
//         String projectPath = System.getProperty("user.dir");
//         globalConfig.setOutputDir(projectPath + "/src/main/java");
//         globalConfig.setAuthor("chench");
//         globalConfig.setOpen(false);
//         autoGenerator.setGlobalConfig(globalConfig);
//
//         // 数据源配置
//         DataSourceConfig dataSourceConfig = new DataSourceConfig();
//         dataSourceConfig.setUrl("jdbc:mysql://127.0.0.1:3306/mybatis_plus?useSSL=false");
//         dataSourceConfig.setDriverName("com.mysql.jdbc.Driver");
//         dataSourceConfig.setUsername("root");
//         dataSourceConfig.setPassword("chench");
//         autoGenerator.setDataSource(dataSourceConfig);
//
//         // 包配置
//         PackageConfig packageConfig = new PackageConfig();
//         packageConfig.setModuleName("mybatisplus_autogenerator");
//         packageConfig.setParent("hn.cch.springboot_mybatisplus");
//         packageConfig.setController("controller");
//         packageConfig.setService("service");
//         packageConfig.setMapper("mapper");
//         packageConfig.setEntity("entity");
//         autoGenerator.setPackageInfo(packageConfig);
//
//
//         InjectionConfig injectionConfig = new InjectionConfig() {
//             @Override
//             public void initMap() {
//
//             }
//         };
//
//
//         List<FileOutConfig> fileOutConfigList = new ArrayList<>();
//         fileOutConfigList.add(new FileOutConfig() {
//             @Override
//             public String outputFile(TableInfo tableInfo) {
//                 return projectPath + "/src/main/resources/mapper/" + packageConfig.getModuleName()
//                         + "/" + tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML;
//             }
//         });
//         injectionConfig.setFileOutConfigList(fileOutConfigList);
//         autoGenerator.setCfg(injectionConfig);
//         autoGenerator.setTemplate(new TemplateConfig().setXml(null));
//
//
//         // 策略配置
//         StrategyConfig strategy = new StrategyConfig();
//         strategy.setNaming(NamingStrategy.underline_to_camel);
//         strategy.setColumnNaming(NamingStrategy.underline_to_camel);
//         strategy.setInclude("mp_user");
//         strategy.setSuperEntityColumns("id");
//
//         strategy.setTablePrefix("mp_");
//         autoGenerator.setStrategy(strategy);
//
//         strategy.setRestControllerStyle(true);
//         strategy.setControllerMappingHyphenStyle(true);
//
//         autoGenerator.execute();
//
//     }
// }
